#!/bin/bash

clear

# 检查文件是否存在
if [ -f "config/pm2/pm2.json" ]; then
  # 提取"name"字段的值
  name=$(grep -o '"name": "[^"]*' config/pm2/pm2.json | cut -d'"' -f4)
  # 判断"name"字段的值
  if [ "$name" == "Miao-Yunzai" ]; then
    echo "Miao-Yunzai"
    ICQQ=0.6.3
  elif [ "$name" == "Yunzai-Bot" ]; then
    echo "Yunzai-Bot"
    echo -e "\e[1;31m原版云崽已归档\e[0m"
    echo -e "\e[1;33m所以本脚本不再适配\e[0m"
    echo -e "\e[1;32m建议您使用 喵版云崽\e[0m \e[1;36mGitee.com/yoimiya-kokomi/Miao-Yunzai\e[0m"
    exit
  else
    echo -e "\e[1;31m无法判断您的Yunzai项目\e[0m"
    exit
  fi
else
   echo -e "\e[1;31m./config/pm2/pm2.json文件不存在\e[0m"
   echo -e "\e[1;32m请在Yzai根目录启动脚本\e[0m"
   echo -e "\e[1;36mbash <(curl -sL gitee.com/ruled/yzai_check/raw/master/X)\e[0m"
   exit
fi

echo -e "\e[1;36m  少女祈祷中...\e[0m"

# 获取icqq的版本号
icqq_version=$(pnpm ls icqq | grep "icqq" | awk '{print $2}')

# 比较版本号
compare_versions() {
    local version1=$1
    local version2=$2

    IFS='.' read -ra v1 <<< "$version1"
    IFS='.' read -ra v2 <<< "$version2"

    for i in {0..2}; do
        if [ "${v1[i]}" -gt "${v2[i]}" ]; then
            echo -e "ICQQ \e[1;31m${version2}\e[0m 低于指定版本 \e[1;32m${version1}\e[0m"
            pnpm update icqq@"$ICQQ"
            return
        elif [ "${v1[i]}" -lt "${v2[i]}" ]; then
            echo -e "ICQQ \e[1;33m${version2}\e[0m 高于指定版本 \e[1;32m${version1}\e[0m"
            pnpm update icqq@"$ICQQ"
            return
        fi
    done
    
    echo -e "ICQQ \e[1;32m${version2}\e[0m 等于指定版本 \e[1;32m${version1}\e[0m"
}

# 执行版本号比较
compare_versions "$ICQQ" "$icqq_version"

# 判断是否执行成功
if [ $? -eq 0 ]; then
  :
else 
  sed -i -E "s/\"icqq\": \"[^\"]+\"/\"icqq\": \"$ICQQ\"/" package.json
  echo "" | pnpm install
  # 判断是否执行成功
if [ $? -eq 0 ]; then
:
else
  echo -e "\e[1;31m  少女为你痛哭~\e[0m"
  read -p "失败了..."
  exit
 fi
fi

echo -e "\e[1;32m  选择安卓协议版本\e[0m"
echo -e "\e[1;36m  默认使用 8.9.78\e[0m"
echo -e "\e[1;33m  如果不能使用再使用高版本\e[0m"
echo -e "————————————
  \033[32m1\033[0m. 8.9.63
  \033[32m1\033[0m. 8.9.68
  \033[32m1\033[0m. 8.9.70
  \033[32m2\033[0m. 8.9.73
  \033[32m3\033[0m. \033[36m8.9.78\033[0m
  \033[32m4\033[0m. 8.9.80
  \033[32m5\033[0m. 8.9.83
  \033[32m6\033[0m. 8.9.85
  \033[32m7\033[0m. 8.9.88
————————————"

  while true; do
    read -p "> " choice
    case $choice in
      1|8963|8.9.63)
       version="8963"
        break
        ;;
      2|8973|8.9.73)
       version="8973"
        break
        ;;
      3|8978|8.9.78|"")
       version="8978"
        break
        ;;
      3|8978|8.9.78)
       version="8978"
        break
        ;;
      4|8980|8.9.80)
       version="8980"
        break
        ;;
      5|8983|8.9.83)
       version="8983"
        break
        ;;
      6|8985|8.9.85)
       version="8985"
        break
        ;;
      7|8988|8.9.88)
       version="8988"
        break
        ;;   
      *)
        echo -e "\e[1;31m 输入错误，请重新输入\e[0m"
        ;;
    esac
  done

echo -e "\e[1;33m  填写公共签名API\e[0m"
# 设置配置文件路径
config_file="config/config/bot.yaml"

# 拼接签名API地址
sign_api_url="http://192.168.0.102:8091/sign?key=114514"

# 检查配置文件中是否已经存在 sign_api_addr
if grep -q "sign_api_addr:" "$config_file"; then
  # 将现有的值替换为新的 URL
  sed -i "s|sign_api_addr:.*|sign_api_addr: $sign_api_url|" "$config_file"
else
  # 在配置文件中添加新的值
  last_line=$(tail -n 1 "$config_file")
  if [ -z "$last_line" ]; then
    echo "sign_api_addr: $sign_api_url" >> "$config_file"
  else
    echo "" >> "$config_file"
    echo "sign_api_addr: $sign_api_url" >> "$config_file"
  fi
fi

echo -e "\e[1;32m[√]\e[0m"

echo -e "\e[1;33m  删除ver指定版本\e[0m"
sed -i '/^ver:/d' "$config_file"
echo -e "\e[1;32m[√]\e[0m"

echo -e "\e[1;33m  删除 旧虚拟设备文件 和 Token\e[0m"

# 指定要查找的文件名
file="config/config/qq.yaml"

# 读取QQ号码
qq=$(grep 'qq:' "$file" | awk '{print $2}')

# 设置删除标志
delete_flag=false

# 删除文件
for token_file in "data/icqq/${qq}/${qq}_token" "data/icqq/${qq}/${qq}_token_bak"; do
  if [ -f "$token_file" ]; then
    echo "文件 $token_file 存在"
    delete_flag=true
  else
    echo "没有需要删除的文件  $token_file"
  fi
done

# 如果存在文件需要删除，则询问用户
if [ "$delete_flag" = true ]; then
  while true; do
    read -p "您需要删除吗 (Y/n)" choice
    case $choice in
      [Yy]|"")
        rm -f "data/icqq/${qq}/${qq}_token"
        rm -rf "data/icqq/${qq}/device.json"
        echo "已删除 data/icqq/${qq}/${qq}_token"
        
        rm -f "data/icqq/${qq}/${qq}_token_bak"
        rm -rf "data/icqq/${qq}/device.json"
        echo "已删除 data/icqq/${qq}/${qq}_token_bak"
        
        break
        ;;
      [Nn])
        echo "取消"
        break
        ;;
      *)
        echo -e "\e[1;31m 输入错误，请重新输入\e[0m"
        ;;
    esac
  done
fi

echo -e "\e[1;33m  修改登录协议为 aPad 安卓平板\e[0m"
# 首先，需要指定要修改的文件
file="config/config/qq.yaml"
# 然后，指定要替换的内容
old="platform: [0-9]"
new="platform: 2"
# 使用sed命令来替换文件中的内容
sed -i "s/$old/$new/g" $file
echo -e "\e[1;32m[√]\e[0m"

echo -e "\e[1;36m  启动 Yunzai 试试吧\e[0m"

exit
